home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / snip0493.zip / QUERY.C < prev    next >
C/C++ Source or Header  |  1993-04-05  |  1KB  |  52 lines

  1. /*
  2. **  QUERY.C - Timed query with default for batch files
  3. **
  4. **  public domain by Bob Stout
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <time.h>
  9. #include <ctype.h>
  10. #include <stdlib.h>
  11. #include <conio.h>
  12.  
  13. main(int argc, char *argv[])
  14. {
  15.       int ch = '\0', def_ch = '\0';
  16.       char *prompt = "(y/n) ";
  17.       clock_t start, limit = (clock_t)0;
  18.  
  19.       if (1 < argc)
  20.       {
  21.             def_ch = toupper(*argv[1]);
  22.             if ('Y' == def_ch)
  23.                   prompt[1] = (char)def_ch;
  24.             else if ('N' == def_ch)
  25.                   prompt[3] = (char)def_ch;
  26.             else  def_ch = '\0';
  27.       }
  28.       fputs(prompt, stderr);
  29.       if (2 < argc)
  30.       {
  31.             start = clock();
  32.             limit = (clock_t)(CLK_TCK * atoi(argv[2]));
  33.       }
  34.       while ('Y' != ch && 'N' != ch)
  35.       {
  36.             while (!kbhit())
  37.             {
  38.                   if (limit && (limit <= (clock() - start)))
  39.                   {
  40.                         ch = def_ch;
  41.                         goto BYE;
  42.                   }
  43.             }
  44.             ch = toupper(getch());
  45.             if ('Y' != ch && 'N' != ch && (1 < argc))
  46.                   ch = def_ch;
  47.       };
  48. BYE:  fputc(ch, stderr);
  49.       fputc('\n', stderr);
  50.       return ('Y' == ch);
  51. }
  52.